package com.xxpt.user.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Date;

@Data
public class DemoDTO {

    /**
     * 证件类型（0身份证，1港澳通行证，2护照）,现在默认是0
     */
    private Integer idType = 0;
    /**
     * 身份证号
     */
    @NotBlank(message = "身份证号不能为空")
    private String idNumber;
    /**
     * 密码
     */
    @NotBlank(message = "密码不能为空")
    @Size(min = 6, max = 20, message = "密码需要6-20位字母或数字")
    //    @Pattern(regexp = "", message = "密码只能为字母或数字")
    private String password;
    /**
     * 姓名
     */
    @Size(min = 1, max = 50, message = "姓名需要1-50位字符")
    private String username;
    /**
     * 性别:0-男,1-女
     */
    @Range(min = 0, max = 1)
    private Integer sex;
    /**
     * 手机号
     */
    private String tel;
    /**
     * 邮箱,必填
     */
    @Email(message = "邮箱格式不正确")
    private String email;
    /**
     * 籍贯-省,必填
     */
    private Integer nativeProvince;
    /**
     * 籍贯-市,必填
     */
    private Integer nativeCity;
    /**
     * 籍贯-区/县,必填
     */
    private Integer nativeCounty;
    /**
     * 籍贯-详细地址
     */
    private String nativeAddress;
    /**
     * 编制: 1-在编, 2-外聘
     */
    private Integer org;
    /**
     * 单位id
     */
    private Integer depId;
    /**
     * 头像地址
     */
    @JsonProperty("hImg")
    private String hImg;


    // 以下为字典项配置
    /**
     * 民族, 字典项
     */
    private String nation;
    /**
     * 第一学历
     */
    private Integer eduF;
    /**
     * 第一学历专业
     */
    private String majorF;
    /**
     * 第一学历学校
     */
    private String schoolF;
    /**
     * 第一学历毕业时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date dateF;
    /**
     * 第二学历
     */
    private Integer eduS;
    /**
     * 第二学历专业
     */
    private String majorS;
    /**
     * 第二学历学校
     */
    private String schoolS;
    /**
     * 第二学历毕业时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date dateS;
    /**
     * 第一职称-专业系列id
     */
    private Integer tfId;
    /**
     * 第二职称-职称职级id
     */
    private Integer tsId;
    /**
     * 第三职称-职称名称id
     */
    private Integer ttId;
    /**
     * 职称获取时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date tDate;

}
